package com.paic.mhis.hcpms.quota.exportword.itext;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import com.paic.mhis.hcpms.quota.exportword.dto.XYLineChartDataDTO;
import com.paic.mhis.hcpms.quota.exportword.utils.GeneralMethods;
import com.paic.mhis.hcpms.quota.settlement.common.KpiValueConst;

/**  
 * 主要是构造页面曲线图数据DTO
 * 单例模式
 */
public class RtfElementDataHelper {

	private RtfElementDataHelper() {
	}

	private static RtfElementDataHelper instance = new RtfElementDataHelper();

	/**
	 * 单例    
	 * @return WordElementDataHelper
	 */
	public static RtfElementDataHelper getInstance() {
		return instance;
	}

	// ---------------张纪成 begin-------------------------------------------
	/**
	 *  张纪成  总费用    
	 * @param resultMap resultMap
	 * @param type      type
	 * @param kpiTime   kpiTime
	 * @param isHosp    isHosp
	 * @return List<XYLineChartDataDTO>
	 */
	public List<XYLineChartDataDTO> createTotalFeeSeriesList(Map<String, Object> resultMap, String type, String kpiTime) {
		List<XYLineChartDataDTO> xyDTOList = new ArrayList<XYLineChartDataDTO>();
		XYLineChartDataDTO dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("最近一年");
		dataDTO.setDateType("0");
		if ("0".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k0_1_1_1_totalFee_gqynList_end"));
		} else if ("2".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k2_1_1_1_totalFee_gqynList_end"));
		}
		xyDTOList.add(dataDTO);

		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("过去三年平均");
		dataDTO.setDateType("0");
		if ("0".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k0_1_1_1_totalFee_gqsnList_end"));
		} else if ("2".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k2_1_1_1_totalFee_gqsnList_end"));
		}
		xyDTOList.add(dataDTO);

		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-1, kpiTime).getTime());
		dataDTO.setLength(4);
		dataDTO.setSeriesName("未来三月预测");
		dataDTO.setDateType("1");
		if ("0".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k0_1_1_1_totalFee_wlsyList_end"));
		} else if ("2".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k2_1_1_1_totalFee_wlsyList_end"));
		}
		xyDTOList.add(dataDTO);

		return xyDTOList;
	}

	/**
	 * 张纪成
	 * 总费用：医保费用占比 预测   
	 * @param resultMap resultMap
	 * @param type      type
	 * @param kpiTime   kpiTime
	 * @param isHosp    isHosp
	 * @return List<XYLineChartDataDTO>
	 */
	public List<XYLineChartDataDTO> createTotalFeeYcSeriesList(Map<String, Object> resultMap, String type,
			String kpiTime) {
		List<XYLineChartDataDTO> xyDTOList = new ArrayList<XYLineChartDataDTO>();
		XYLineChartDataDTO dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("同比");
		dataDTO.setDateType("0");
		if ("0".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k0_1_1_1_totalFee_yc_yoyList_end"));
		} else if ("2".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k2_1_1_1_totalFee_yc_yoyList_end"));
		}
		xyDTOList.add(dataDTO);

		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("环比");
		dataDTO.setDateType("0");
		if ("0".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k0_1_1_1_totalFee_yc_momList_end"));
		} else if ("2".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k2_1_1_1_totalFee_yc_momList_end"));
		}
		xyDTOList.add(dataDTO);

		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-1, kpiTime).getTime());
		dataDTO.setLength(4);
		dataDTO.setSeriesName("同比预测");
		dataDTO.setDateType("1");
		if ("0".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k0_1_1_1_totalFee_yc_yoy_ycList_end"));
		} else if ("2".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k2_1_1_1_totalFee_yc_yoy_ycList_end"));
		}
		xyDTOList.add(dataDTO);

		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-1, kpiTime).getTime());
		dataDTO.setLength(4);
		dataDTO.setSeriesName("环比预测");
		dataDTO.setDateType("1");
		if ("0".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k0_1_1_1_totalFee_yc_mom_ycList_end"));
		} else if ("2".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k2_1_1_1_totalFee_yc_mom_ycList_end"));
		}
		xyDTOList.add(dataDTO);

		return xyDTOList;
	}

	/**
	 * 张纪成
	 * 总费用:医保费用占比    
	 * @param resultMap resultMap
	 * @param type      type
	 * @param kpiTime   kpiTime
	 * @param isHosp    isHosp
	 * @return List<XYLineChartDataDTO>
	 */
	public List<XYLineChartDataDTO> createTotalFeeRateSeriesList(Map<String, Object> resultMap, String type,
			String kpiTime) {
		List<XYLineChartDataDTO> xyDTOList = new ArrayList<XYLineChartDataDTO>();
		XYLineChartDataDTO dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("最近一年");
		dataDTO.setDateType("0");
		if ("0".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k0_1_1_2_Fee_Rate_zjynList_end"));
		} else if ("2".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k2_1_1_2_Fee_Rate_zjynList_end"));
		}
		xyDTOList.add(dataDTO);

		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("过去三年平均");
		dataDTO.setDateType("0");
		if ("0".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k0_1_1_2_Fee_Rate_gqsnList_end"));
		} else if ("2".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k2_1_1_2_Fee_Rate_gqsnList_end"));
		}
		xyDTOList.add(dataDTO);

		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-1, kpiTime).getTime());
		dataDTO.setLength(4);
		dataDTO.setSeriesName("未来三月预测");
		dataDTO.setDateType("1");
		if ("0".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k0_1_1_2_Fee_Rate_wlsyList_end"));
		} else if ("2".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k2_1_1_2_Fee_Rate_wlsyList_end"));
		}
		xyDTOList.add(dataDTO);

		return xyDTOList;
	}

	/**
	 * TODO 张纪成
	 * 总费用：医保费用预测   
	 * @param resultMap resultMap
	 * @param type      type
	 * @param kpiTime   kpiTime
	 * @param isHosp    isHosp
	 * @return List<XYLineChartDataDTO>
	 */
	public List<XYLineChartDataDTO> createTotalFeeRateYcSeriesList(Map<String, Object> resultMap, String type,
			String kpiTime) {
		List<XYLineChartDataDTO> xyDTOList = new ArrayList<XYLineChartDataDTO>();
		XYLineChartDataDTO dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("同比");
		dataDTO.setDateType("0");
		if ("0".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k0_1_1_2_Fee_Rate_yoyList_end"));
		} else if ("2".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k2_1_1_2_Fee_Rate_yoyList_end"));
		}
		xyDTOList.add(dataDTO);

		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("环比");
		dataDTO.setDateType("0");
		if ("0".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k0_1_1_2_Fee_Rate_momList_end"));
		} else if ("2".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k2_1_1_2_Fee_Rate_momList_end"));
		}
		xyDTOList.add(dataDTO);

		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-1, kpiTime).getTime());
		dataDTO.setLength(4);
		dataDTO.setSeriesName("同比预测");
		dataDTO.setDateType("1");
		if ("0".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k0_1_1_2_Fee_Rate_yoy_ycList_end"));
		} else if ("2".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k2_1_1_2_Fee_Rate_yoy_ycList_end"));
		}
		xyDTOList.add(dataDTO);

		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-1, kpiTime).getTime());
		dataDTO.setLength(4);
		dataDTO.setSeriesName("环比预测");
		dataDTO.setDateType("1");
		if ("0".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k0_1_1_2_Fee_Rate_mom_ycList_end"));
		} else if ("2".equals(type)) {
			dataDTO.setDataList((List) resultMap.get("k2_1_1_2_Fee_Rate_mom_ycList_end"));
		}
		xyDTOList.add(dataDTO);

		return xyDTOList;
	}

	/**
	 * 张纪成：混合图
	 * @param resultMap    resultMap
	 * @param type         type
	 * @param kpiTime      type
	 * @param isHosp       isHosp
	 * @return List<XYLineChartDataDTO> 
	 */
	public List<XYLineChartDataDTO> createCyCjSeriesList(Map<String, Object> resultMap, String type, String kpiTime,
			boolean isHosp) {
		// xyDTOList
		List<XYLineChartDataDTO> xyDTOList = new ArrayList<XYLineChartDataDTO>();

		// 过去三年平均
		XYLineChartDataDTO dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("次均费用");
		dataDTO.setDateType("0");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_3_2_fee_cjList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_3_2_fee_cjList_end"));
			}
		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_3_2_fee_cjList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_3_2_fee_cjList_end"));
			}
		}
		xyDTOList.add(dataDTO);

		// 最近一年
		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setDateType("0");
		if (isHosp) {
			dataDTO.setSeriesName("出院人次");
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_3_2_fee_rjList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_3_2_fee_rjList_end"));
			}
		} else {
			dataDTO.setSeriesName("门诊人次");
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_3_2_fee_rjList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_3_2_fee_rjList_end"));
			}
		}
		xyDTOList.add(dataDTO);

		return xyDTOList;
	}

	/**
	 * 张纪成：住院人次 同比环比
	 * @param resultMap resultMap
	 * @param type		type
	 * @param kpiTime	kpiTime
	 * @param isHosp    isHosp
	 * @return List<XYLineChartDataDTO>
	 */
	public List<XYLineChartDataDTO> createCyRcSeriesList(Map<String, Object> resultMap, String type, String kpiTime,
			boolean isHosp) {
		List<XYLineChartDataDTO> xyDTOList = new ArrayList<XYLineChartDataDTO>();
		XYLineChartDataDTO dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("最近一年");
		dataDTO.setDateType("0");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_3_2_fee_cy_gqynList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_3_2_fee_cy_gqynList_end"));
			}
		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_3_2_fee_cy_gqynList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_3_2_fee_cy_gqynList_end"));
			}
		}
		xyDTOList.add(dataDTO);

		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("过去三年平均");
		dataDTO.setDateType("0");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_3_2_fee_cy_gqsnList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_3_2_fee_cy_gqsnList_end"));
			}
		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_3_2_fee_cy_gqsnList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_3_2_fee_cy_gqsnList_end"));
			}
		}
		xyDTOList.add(dataDTO);

		return xyDTOList;
	}

	/**
	 * 郑超：平均住院日和平均床日费 过去一年和过去三年平均
	 * @param resultMap resultMap
	 * @param type		type
	 * @param kpiTime	kpiTime
	 * @param isHosp    isHosp
	 * @param isSecKpi  isSecKpi
	 * @return List<XYLineChartDataDTO>
	 */
	public List<XYLineChartDataDTO> createZyRiYearSeriesList(Map<String, Object> resultMap, String type,
			String kpiTime, boolean isHosp, boolean isSecKpi) {
		List<XYLineChartDataDTO> xyDTOList = new ArrayList<XYLineChartDataDTO>();
		XYLineChartDataDTO dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("最近一年");
		dataDTO.setDateType("0");
		if (isHosp) {
			if (!isSecKpi) {
				if ("0".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k0_0006_valueL_end"));
				} else if ("2".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k2_0006_valueL_end"));
				}
			} else {
				if ("0".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k0_0007_valueL_end"));
				} else if ("2".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k2_0007_valueL_end"));
				}
			}
		} else {
			if (!isSecKpi) {
				if ("0".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k0_0039_valueL_end"));
				} else if ("2".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k2_0039_valueL_end"));
				}
			} else {
				if ("0".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k0_00052_valueL_end"));
				} else if ("2".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k2_00052_valueL_end"));
				}
			}
		}
		xyDTOList.add(dataDTO);

		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("过去三年平均");
		dataDTO.setDateType("0");
		if (isHosp) {
			if (!isSecKpi) {
				if ("0".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k0_0006_threeValueL_end"));
				} else if ("2".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k2_0006_threeValueL_end"));
				}
			} else {
				if ("0".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k0_0007_threeValueL_end"));
				} else if ("2".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k2_0007_threeValueL_end"));
				}
			}
		} else {
			if (!isSecKpi) {
				if ("0".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k0_0039_threeValueL_end"));
				} else if ("2".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k2_0039_threeValueL_end"));
				}
			} else {
				if ("0".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k0_0052_threeValueL_end"));
				} else if ("2".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k2_0052_threeValueL_end"));
				}
			}
		}
		xyDTOList.add(dataDTO);

		return xyDTOList;
	}

	/**
	 * 郑超：平均住院日和平均床日费 同比 环比
	 * @param resultMap resultMap
	 * @param type		type
	 * @param kpiTime	kpiTime
	 * @param isHosp    isHosp
	 * @param isSecKpi  isSecKpi
	 * @return List<XYLineChartDataDTO>
	 */
	public List<XYLineChartDataDTO> createZyRiYoyMomSeriesList(Map<String, Object> resultMap, String type,
			String kpiTime, boolean isHosp, boolean isSecKpi) {
		List<XYLineChartDataDTO> xyDTOList = new ArrayList<XYLineChartDataDTO>();
		XYLineChartDataDTO dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("同比");
		dataDTO.setDateType("0");
		if (isHosp) {
			if (!isSecKpi) {
				if ("0".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k0_0006_yoyL_end"));
				} else if ("2".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k2_0006_yoyL_end"));
				}
			} else {
				if ("0".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k0_0007_yoyL_end"));
				} else if ("2".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k2_0007_yoyL_end"));
				}
			}
		} else {
			if (!isSecKpi) {
				if ("0".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k0_0039_yoyL_end"));
				} else if ("2".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k2_0039_yoyL_end"));
				}
			} else {
				if ("0".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k0_00052_yoyL_end"));
				} else if ("2".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k2_00052_yoyL_end"));
				}
			}
		}
		xyDTOList.add(dataDTO);

		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("环比");
		dataDTO.setDateType("0");
		if (isHosp) {
			if (!isSecKpi) {
				if ("0".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k0_0006_momL_end"));
				} else if ("2".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k2_0006_momL_end"));
				}
			} else {
				if ("0".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k0_0007_momL_end"));
				} else if ("2".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k2_0007_momL_end"));
				}
			}
		} else {
			if (!isSecKpi) {
				if ("0".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k0_0039_momL_end"));
				} else if ("2".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k2_0039_momL_end"));
				}
			} else {
				if ("0".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k0_0052_momL_end"));
				} else if ("2".equals(type)) {
					dataDTO.setDataList((List) resultMap.get("k2_0052_momL_end"));
				}
			}
		}
		xyDTOList.add(dataDTO);

		return xyDTOList;
	}

	/**
	 * 张纪成：次均费用
	 * @param resultMap resultMap
	 * @param type		type
	 * @param kpiTime	kpiTime
	 * @param isHosp    isHosp
	 * @return List<XYLineChartDataDTO>
	 */
	public List<XYLineChartDataDTO> createCjFeeSeriesList(Map<String, Object> resultMap, String type, String kpiTime,
			boolean isHosp) {
		List<XYLineChartDataDTO> xyDTOList = new ArrayList<XYLineChartDataDTO>();
		XYLineChartDataDTO dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("最近一年");
		dataDTO.setDateType("0");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_3_2_fee_cj_gqynList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_3_2_fee_cj_gqynList_end"));
			}
		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_3_2_fee_cj_gqynList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_3_2_fee_cj_gqynList_end"));
			}
		}
		xyDTOList.add(dataDTO);

		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("过去三年平均");
		dataDTO.setDateType("0");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_3_2_fee_cj_gqsnList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_3_2_fee_cj_gqsnList_end"));
			}
		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_3_2_fee_cj_gqsnList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_3_2_fee_cj_gqsnList_end"));
			}
		}
		xyDTOList.add(dataDTO);

		return xyDTOList;
	}

	/**
	 * 张纪成：次均费用
	 * @param resultMap resultMap
	 * @param type		type
	 * @param kpiTime	kpiTime
	 * @param isHosp    isHosp
	 * @return List<XYLineChartDataDTO>
	 */
	public List<XYLineChartDataDTO> createCjYcSeriesList(Map<String, Object> resultMap, String type, String kpiTime,
			boolean isHosp) {
		// xyDTOList
		List<XYLineChartDataDTO> xyDTOList = new ArrayList<XYLineChartDataDTO>();
		XYLineChartDataDTO dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("同比");
		dataDTO.setDateType("0");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_3_2_fee_cj_yoyList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_3_2_fee_cj_yoyList_end"));
			}
		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_3_2_fee_cj_yoyList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_3_2_fee_cj_yoyList_end"));
			}
		}
		xyDTOList.add(dataDTO);
		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("环比");
		dataDTO.setDateType("0");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_3_2_fee_cj_momList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_3_2_fee_cj_momList_end"));
			}
		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_3_2_fee_cj_momList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_3_2_fee_cj_momList_end"));
			}
		}
		xyDTOList.add(dataDTO);

		return xyDTOList;
	}

	/**
	 * 住院：医保费用占比预测    
	 * @param resultMap resultMap
	 * @param type      type
	 * @param kpiTime   kpiTime
	 * @param isHosp    isHosp
	 * @return List<XYLineChartDataDTO>
	 */
	public List<XYLineChartDataDTO> createCyYcSeriesList(Map<String, Object> resultMap, String type, String kpiTime,
			boolean isHosp) {
		// xyDTOList
		List<XYLineChartDataDTO> xyDTOList = new ArrayList<XYLineChartDataDTO>();
		XYLineChartDataDTO dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("同比");
		dataDTO.setDateType("0");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_3_2_fee_yoyList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_3_2_fee_yoyList_end"));
			}
		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_3_2_fee_yoyList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_3_2_fee_yoyList_end"));
			}
		}
		xyDTOList.add(dataDTO);
		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("环比");
		dataDTO.setDateType("0");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_3_2_fee_momList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_3_2_fee_momList_end"));
			}
		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_3_2_fee_momList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_3_2_fee_momList_end"));
			}
		}
		xyDTOList.add(dataDTO);

		return xyDTOList;
	}

	// ---------------张纪成 end-----------------------------------------------

	// ---------------杨理刚 begin--------------------------------------------
	/**
	 * 杨理刚
	 * 住院：医保费用占比预测    
	 * @param resultMap resultMap
	 * @param type      type
	 * @param kpiTime   kpiTime
	 * @param isHosp    isHosp
	 * @return List<XYLineChartDataDTO>
	 */
	public List<XYLineChartDataDTO> createHospAOutpatFeeSeriesList(Map<String, Object> resultMap, String type,
			String kpiTime, boolean isHosp) {
		List<XYLineChartDataDTO> xyDTOList = new ArrayList<XYLineChartDataDTO>();
		// 最近一年
		XYLineChartDataDTO dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("最近一年");
		dataDTO.setDateType("0");

		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_1_1_fee_zjynList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_1_1_fee_zjynList_end"));
			}
		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_1_1_fee_zjynList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_1_1_fee_zjynList_end"));
			}
		}
		xyDTOList.add(dataDTO);
		// 过去三年平均
		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("过去三年平均");
		dataDTO.setDateType("0");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_1_1_fee_gqsnList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_1_1_fee_gqsnList_end"));
			}
		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_1_1_fee_gqsnList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_1_1_fee_gqsnList_end"));
			}
		}
		xyDTOList.add(dataDTO);
		// 未来3个月预测
		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-1, kpiTime).getTime());
		dataDTO.setLength(4);
		dataDTO.setSeriesName("未来三月预测");
		dataDTO.setDateType("1");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_1_1_fee_wlsyList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_1_1_fee_wlsyList_end"));
			}
		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_1_1_fee_wlsyList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_1_1_fee_wlsyList_end"));
			}
		}
		xyDTOList.add(dataDTO);

		return xyDTOList;
	}

	/**
	 * 杨理刚
	 * 住院：医保费用占比预测    
	 * @param resultMap resultMap
	 * @param type      type
	 * @param kpiTime   kpiTime
	 * @param isHosp    isHosp
	 * @return List<XYLineChartDataDTO>
	 */
	public List<XYLineChartDataDTO> createHospMedYcSeriesList(Map<String, Object> resultMap, String type,
			String kpiTime, boolean isHosp) {
		// xyDTOList
		List<XYLineChartDataDTO> xyDTOList = new ArrayList<XYLineChartDataDTO>();

		XYLineChartDataDTO dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("同比");
		dataDTO.setDateType("0");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_1_1_fee_yoyList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_1_1_fee_yoyList_end"));
			}

		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_1_1_fee_yoyList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_1_1_fee_yoyList_end"));
			}

		}
		xyDTOList.add(dataDTO);
		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("环比");
		dataDTO.setDateType("0");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_1_1_fee_momList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_1_1_fee_momList_end"));
			}
		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_1_1_fee_momList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_1_1_fee_momList_end"));
			}
		}
		xyDTOList.add(dataDTO);
		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-1, kpiTime).getTime());
		dataDTO.setLength(4);
		dataDTO.setSeriesName("同比预测");
		dataDTO.setDateType("1");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_1_1_fee_yoy_ycList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_1_1_fee_yoy_ycList_end"));
			}
		} else {

			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_1_1_fee_yoy_ycList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_1_1_fee_yoy_ycList_end"));
			}
		}
		xyDTOList.add(dataDTO);

		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-1, kpiTime).getTime());
		dataDTO.setLength(4);
		dataDTO.setSeriesName("环比预测");
		dataDTO.setDateType("1");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_1_1_fee_mom_ycList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_1_1_fee_mom_ycList_end"));
			}
		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_1_1_fee_mom_ycList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_1_1_fee_mom_ycList_end"));
			}
		}
		xyDTOList.add(dataDTO);

		return xyDTOList;
	}

	/**
	 * 杨理刚
	 * 住院：医保费用占比预测    
	 * @param resultMap resultMap
	 * @param type      type
	 * @param kpiTime   kpiTime
	 * @param isHosp    isHosp
	 * @return List<XYLineChartDataDTO>
	 */
	public List<XYLineChartDataDTO> createHospFeeRateSeriesList(Map<String, Object> resultMap, String type,
			String kpiTime, boolean isHosp) {
		List<XYLineChartDataDTO> xyDTOList = new ArrayList<XYLineChartDataDTO>();
		XYLineChartDataDTO dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("最近一年");
		dataDTO.setDateType("0");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_1_2_f_zjynList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_1_2_f_zjynList_end"));
			}

		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_1_2_f_zjynList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_1_2_f_zjynList_end"));
			}

		}
		xyDTOList.add(dataDTO);

		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("过去三年平均");
		dataDTO.setDateType("0");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_1_2_f_gqsnList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_1_2_f_gqsnList_end"));
			}
		} else {

			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_1_2_f_gqsnList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_1_2_f_gqsnList_end"));
			}
		}
		xyDTOList.add(dataDTO);

		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-1, kpiTime).getTime());
		dataDTO.setLength(4);
		dataDTO.setSeriesName("未来三月预测");
		dataDTO.setDateType("1");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_1_2_f_wlsyList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_1_2_f_wlsyList_end"));
			}
		} else {

			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_1_2_f_wlsyList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_1_2_f_wlsyList_end"));
			}
		}
		xyDTOList.add(dataDTO);

		return xyDTOList;
	}

	/**
	 * 杨理刚
	 * 住院：医保费用占比预测    
	 * @param resultMap resultMap
	 * @param type      type
	 * @param kpiTime   kpiTime
	 * @param isHosp    isHosp
	 * @return List<XYLineChartDataDTO>
	 */
	public List<XYLineChartDataDTO> createMedRateYcSeriesList(Map<String, Object> resultMap, String type,
			String kpiTime, boolean isHosp) {
		List<XYLineChartDataDTO> xyDTOList = new ArrayList<XYLineChartDataDTO>();
		XYLineChartDataDTO dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("同比");
		dataDTO.setDateType("0");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_1_2_f_yoyList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_1_2_f_yoyList_end"));
			}
		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_1_2_f_yoyList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_1_2_f_yoyList_end"));
			}
		}

		xyDTOList.add(dataDTO);

		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("环比");
		dataDTO.setDateType("0");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_1_2_f_momList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_1_2_f_momList_end"));
			}

		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_1_2_f_momList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_1_2_f_momList_end"));
			}

		}
		xyDTOList.add(dataDTO);

		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-1, kpiTime).getTime());
		dataDTO.setLength(4);
		dataDTO.setSeriesName("同比预测");
		dataDTO.setDateType("1");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_1_2_f_yoy_ycList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_1_2_f_yoy_ycList_end"));
			}
		} else {

			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_1_2_f_yoy_ycList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_1_2_f_yoy_ycList_end"));
			}

		}
		xyDTOList.add(dataDTO);

		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-1, kpiTime).getTime());
		dataDTO.setLength(4);
		dataDTO.setSeriesName("环比预测");
		dataDTO.setDateType("1");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_1_2_f_mom_ycList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_1_2_f_mom_ycList_end"));
			}
		} else {

			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_1_2_f_mom_ycList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_1_2_f_mom_ycList_end"));
			}
		}
		xyDTOList.add(dataDTO);

		return xyDTOList;
	}

	// ---------------杨理刚 end----------------------------------------------

	// ---------------郑超 begin--------------------------------------------
	/**
	 * 郑超 住院：平均住院日和平均床日费
	 * @param resultMap resultMap
	 * @param type		type
	 * @param kpiTime	kpiTime
	 * @param isHosp	isHosp
	 * @return List<XYLineChartDataDTO>
	 *  
	 */
	public List<XYLineChartDataDTO> createAvgHospDayAndBedFeeSeriesList(Map<String, Object> resultMap, String type,
			String kpiTime, boolean isHosp) {
		List<XYLineChartDataDTO> xyDTOList = new ArrayList<XYLineChartDataDTO>();

		XYLineChartDataDTO dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("平均床日费");
		dataDTO.setDateType("0");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_4_2_fee_crList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_4_2_fee_crList_end"));
			}
		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_4_2_fee_crList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_4_2_fee_crList_end"));
			}
		}
		xyDTOList.add(dataDTO);

		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("平均住院日");
		dataDTO.setDateType("0");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_4_2_fee_zyList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_4_2_fee_zyList_end"));
			}
		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_4_2_fee_zyList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_4_2_fee_zyList_end"));
			}
		}
		xyDTOList.add(dataDTO);

		return xyDTOList;
	}

	/**
	 * 制作药品费用占比pie图的数据
	 * @param resultMap		resultMap
	 * @param type			word维度
	 * @param isHosp		是否门诊
	 * @return
	 */
	public List<String[]> getDeptRatePieSeriesList(Map<String, Object> resultMap, boolean isHosp) {
		List<String[]> pieList = null;
		if (isHosp) {
			pieList = (List) resultMap.get("k2_2_5_1_pieList_end");
		} else {
			pieList = (List) resultMap.get("k2_3_5_1_pieList_end");
		}

		if (GeneralMethods.getInstance().isEmptyCollects(pieList)) {
			return new ArrayList<String[]>();
		}
		return pieList;
	}

	// ---------------郑超 end----------------------------------------------

	// ---------------高海光 begin--------------------------------------------
	/**
	 * 制作药品费用占比pie图的数据
	 * @param resultMap		resultMap
	 * @param type			word维度
	 * @param kpiTime       kpiTime
	 * @param isHosp		是否门诊
	 * @return List<String[]> 
	 */
	public List<String[]> getDrugFeeRatePieSeriesList(Map<String, Object> resultMap, String type, String kpiTime,
			boolean isHosp) {
		List<String[]> pieList = new ArrayList<String[]>();

		String drugFee = null;
		String otherFee = null;
		if (KpiValueConst.WORD_PARTY_1.equals(type)) {
			if (isHosp) {
				drugFee = String.valueOf(resultMap.get("k0_2_2_1_Fee_cookie_end"));
				otherFee = String.valueOf(resultMap.get("k0_2_2_2_fee_cookie_end"));
			} else {
				drugFee = String.valueOf(resultMap.get("k0_3_2_1_fee_cookie_end"));
				otherFee = String.valueOf(resultMap.get("k0_3_2_2_fee_cookie_end"));
			}

		} else if (KpiValueConst.WORD_PARTY_3.equals(type)) {
			if (isHosp) {
				drugFee = String.valueOf(resultMap.get("k2_2_2_1_Fee_cookie_end"));
				otherFee = String.valueOf(resultMap.get("k2_2_2_2_fee_cookie_end"));
			} else {
				drugFee = String.valueOf(resultMap.get("k2_3_2_1_Fee_cookie_end"));
				otherFee = String.valueOf(resultMap.get("k2_3_2_2_fee_cookie_end"));
			}
		}

		if ("null".equals(drugFee) || GeneralMethods.getInstance().isEmptyString(drugFee)) {
			drugFee = "0";
		}
		if ("null".equals(otherFee) || GeneralMethods.getInstance().isEmptyString(otherFee)) {
			otherFee = "0";
		}

		pieList.add(new String[] { "药品费用", drugFee });
		pieList.add(new String[] { "其他费用", otherFee });

		return pieList;
	}

	/**
	 * 制作住院或门诊的其他费用(除药品费用)占比pie图
	 * @param resultMap		resultMap
	 * @param type			word维度
	 * @param kpiTime		kpiTime
	 * @param isHosp		isHosp
	 * @return list
	 * 
	 */
	@SuppressWarnings("unchecked")
	public List<String[]> getOtherFeeRatePieSeriesList(Map<String, Object> resultMap, String type, String kpiTime,
			boolean isHosp) {
		List<String[]> pieList = new ArrayList<String[]>();

		List<String[]> otherFeeList = null;

		if (KpiValueConst.WORD_PARTY_1.equals(type)) {
			if (isHosp) {
				otherFeeList = (List<String[]>) resultMap.get("k0_2_2_2_fee_pieList_end");
			} else {
				otherFeeList = (List<String[]>) resultMap.get("k0_3_2_2_fee_pieList_end");
			}

		} else if (KpiValueConst.WORD_PARTY_3.equals(type)) {
			if (isHosp) {
				otherFeeList = (List<String[]>) resultMap.get("k2_2_2_2_fee_pieList_end");
			} else {
				otherFeeList = (List<String[]>) resultMap.get("k2_3_2_2_fee_pieList_end");
			}
		}

		if (GeneralMethods.getInstance().isEmptyCollects(otherFeeList)) {
			return new ArrayList<String[]>();
		}

		// 迭代取值，最后一个合计不需要了
		for (String[] strings : otherFeeList) {
			pieList.add(new String[] { strings[0], strings[1] });
		}

		return pieList;
	}

	/**
	 * 高海光
	 * 住院：住院检查费  变化趋势图
	 * @param resultMap resultMap
	 * @return
	 */
	public List<XYLineChartDataDTO> createHospCheckFeeSeriesList(Map<String, Object> resultMap, String type,
			String kpiTime, boolean isHosp) {
		List<XYLineChartDataDTO> xyDTOList = new ArrayList<XYLineChartDataDTO>();
		XYLineChartDataDTO dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("最近一年");
		dataDTO.setDateType("0");
		xyDTOList.add(dataDTO);

		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("过去三年平均");
		dataDTO.setDateType("0");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_2_2_fee_gqynList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_2_2_fee_gqynList_end"));
			}
		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_2_2_fee_gqynList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_2_2_fee_gqynList_end"));
			}
		}

		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_2_2_fee_gqsnList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_2_2_fee_gqsnList_end"));
			}
		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_2_2_fee_gqsnList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_2_2_fee_gqsnList_end"));
			}
		}
		xyDTOList.add(dataDTO);

		return xyDTOList;
	}

	/**
	 * 高海光
	 * 手术费、检查费等其他费用 变化趋势图
	 * @param resultMap resultMap
	 * @param type		type
	 * @param kpiTime	kpiTime
	 * @param isHosp	isHosp
	 * @return List<XYLineChartDataDTO>
	 * 
	 */
	public List<XYLineChartDataDTO> createDrugOtherFeeYoyMomSeriesList(Map<String, Object> resultMap, String type,
			String kpiTime, boolean isHosp, String kpiId) {
		List<XYLineChartDataDTO> xyDTOList = new ArrayList<XYLineChartDataDTO>();
		XYLineChartDataDTO dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("同比");
		dataDTO.setDateType("0");
		if (isHosp) {

			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_2_" + kpiId + "_fee_yoyList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_2_" + kpiId + "_fee_yoyList_end"));
			}
		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_2_" + kpiId + "_fee_yoyList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_2_" + kpiId + "_fee_yoyList_end"));
			}
		}
		xyDTOList.add(dataDTO);

		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("环比");
		dataDTO.setDateType("0");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_2_" + kpiId + "_fee_momList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_2_" + kpiId + "_fee_momList_end"));
			}
		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_2_" + kpiId + "_fee_momList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_2_" + kpiId + "_fee_momList_end"));
			}
		}
		xyDTOList.add(dataDTO);

		return xyDTOList;
	}

	/**
	 * 高海光
	 * 手术费、检查费等其他费用 同比环比 变化趋势图
	 * @param resultMap resultMap
	 * @param type		type
	 * @param kpiTime	kpiTime
	 * @param isHosp	isHosp
	 * @return List<XYLineChartDataDTO>
	 * 
	 */
	public List<XYLineChartDataDTO> createDrugOtherFeeSeriesList(Map<String, Object> resultMap, String type,
			String kpiTime, boolean isHosp, String kpiId) {
		List<XYLineChartDataDTO> xyDTOList = new ArrayList<XYLineChartDataDTO>();
		XYLineChartDataDTO dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("过去一年");
		dataDTO.setDateType("0");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_2_" + kpiId + "_fee_gqynList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_2_" + kpiId + "_fee_gqynList_end"));
			}
		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_2_" + kpiId + "_fee_gqynList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_2_" + kpiId + "_fee_gqynList_end"));
			}
		}
		xyDTOList.add(dataDTO);

		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("过去三年");
		dataDTO.setDateType("0");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_2_" + kpiId + "_fee_gqsnList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_2_" + kpiId + "_fee_gqsnList_end"));
			}
		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_2_" + kpiId + "_fee_gqsnList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_2_" + kpiId + "_fee_gqsnList_end"));
			}
		}
		xyDTOList.add(dataDTO);

		return xyDTOList;
	}

	/**
	 * 高海光
	 * 住院检查费  同比环比变化趋势图
	 * @param resultMap resultMap
	 * @param type		type
	 * @param kpiTime	kpiTime
	 * @param isHosp	isHosp
	 * @return List<XYLineChartDataDTO>
	 * 
	 */
	public List<XYLineChartDataDTO> createHospCheckFeeYoyMomSeriesList(Map<String, Object> resultMap, String type,
			String kpiTime, boolean isHosp) {
		List<XYLineChartDataDTO> xyDTOList = new ArrayList<XYLineChartDataDTO>();
		XYLineChartDataDTO dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("同比");
		dataDTO.setDateType("0");
		if (isHosp) {

			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_2_2_fee_yoyList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_2_2_fee_yoyList_end"));
			}
		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_2_2_fee_yoyList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_2_2_fee_yoyList_end"));
			}
		}
		xyDTOList.add(dataDTO);
		// 过去三年平均
		dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setSeriesName("环比");
		dataDTO.setDateType("0");
		if (isHosp) {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_2_2_fee_momList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_2_2_fee_momList_end"));
			}
		} else {
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_2_2_fee_momList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_2_2_fee_momList_end"));
			}
		}
		xyDTOList.add(dataDTO);

		return xyDTOList;
	}

	/**
	 * 平均床日费 和 门诊人数和人均费用 合并的方法 
	 * @param resultMap	resultMap
	 * @param type		type
	 * @param kpiTime   kpiTime
	 * @param isHosp    isHosp
	 * @return List<XYLineChartDataDTO>
	 */
	public Object createAvgBedFeeSeriesList(Map<String, Object> resultMap, String type, String kpiTime, boolean isHosp) {
		List<XYLineChartDataDTO> xyDTOList = new ArrayList<XYLineChartDataDTO>();
		XYLineChartDataDTO dataDTO = new XYLineChartDataDTO();
		dataDTO.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO.setLength(12);
		dataDTO.setDateType("0");
		xyDTOList.add(dataDTO);

		XYLineChartDataDTO dataDTO2 = new XYLineChartDataDTO();
		dataDTO2.setStartDate(GeneralMethods.getInstance().addMonthByNowDate(-12, kpiTime).getTime());
		dataDTO2.setLength(12);
		dataDTO2.setDateType("0");
		xyDTOList.add(dataDTO2);

		if (isHosp) {
			dataDTO.setSeriesName("人均费用");
			dataDTO2.setSeriesName("住院人数");
			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_2_4_2_fee_crList_end"));
				dataDTO2.setDataList((List) resultMap.get("k0_2_4_2_fee_zyList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_2_4_2_fee_crList_end"));
				dataDTO2.setDataList((List) resultMap.get("k2_2_4_2_fee_zyList_end"));
			}
		} else {
			dataDTO.setSeriesName("人均费用");
			dataDTO2.setSeriesName("门诊人数");

			if ("0".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k0_3_4_2_fee_crList_end"));
				dataDTO2.setDataList((List) resultMap.get("k0_3_4_2_fee_zyList_end"));
			} else if ("2".equals(type)) {
				dataDTO.setDataList((List) resultMap.get("k2_3_4_2_fee_crList_end"));
				dataDTO2.setDataList((List) resultMap.get("k2_3_4_2_fee_zyList_end"));
			}
		}
		return xyDTOList;
	}
	// ---------------高海光 end----------------------------------------------
}